//#include <iostream>
//#include <string>
//using namespace std;
//
//int main() {
//    string a, b;
//    cin >> a >> b;
//    int sum = a.size();
//    for (int i = 0; i <= b.size() - a.size(); i++) {
//        int ans = 0;
//        int l = 0;
//        for (int j = i; j < i + a.size(); j++) {
//            if (b[j] != a[l]) {
//                ans++;
//            }
//            l++;
//        }
//        if (ans < sum) {
//            sum = ans;
//        }
//    }
//    cout << sum;
//    return 0;
//}

//#include <iostream>
//#include <algorithm>
//#include <vector>
//using namespace std;
//typedef long long ll;
//
//int main() {
//    int n;
//    cin >> n;
//    vector<ll> a(n);
//    for (int i = 0; i < n; i++) {
//        cin >> a[i];
//    }
//
//    // 找到数组中的最大值
//    ll ma = *max_element(a.begin(), a.end());
//
//    bool isPossible = true;
//    for (int i = 0; i < n; i++) {
//        if (a[i] == ma)
//        {
//            continue;
//        }
//        // 检查 ma 是否能被 a[i] 整除
//        if (ma % a[i] != 0) {
//            isPossible = false;
//            break;
//        }
//        // 如果能整除，检查商是否为偶数
//        if (isPossible && (ma / a[i]) % 2 != 0) {
//            isPossible = false;
//            break;
//        }
//    }
//
//    if (isPossible) {
//        cout << "YES" << endl;
//    }
//    else {
//        cout << "NO" << endl;
//    }
//    return 0;
//}

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
typedef long long ll;
bool cmp(const ll& a, const ll& b) {
    return a > b;
}
int main() {
    int n;
    cin >> n;
    vector<ll> a(n);
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }
    sort(a.begin(), a.end(), cmp);
    ll ma = a[0];
    bool vis = true;
    for (int i = 1; i < a.size(); i++) {
        if (ma % a[i] != 0)
        {
            vis = false;
            break;
        }
        if ((ma / a[i]) % 2 != 0)
        {
            vis = false;
            break;
        }
    }
    if (vis) {
        cout << "YES" << endl;
    }
    else {
        cout << "NO" << endl;
    }
    return 0;
}

#include <iostream>
#include <vector>
using namespace std;
const int N = 50;
int arr[N];
int main() {
    int v, n;
    cin >> v >> n;
    for (int i = 1; i <= n; i++)
    {
        cin >> arr[i];
    }
    vector<vector<int>> dp(n + 1, vector<int>(v + 1, 0));
    for (int i = 1; i <= n; i++)
    {
        for (int j = 1; j <= v; j++)
        {
            if (arr[i] > j)
            {
                dp[i][j] = dp[i - 1][j];
            }
            else {
                dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - arr[i]] + arr[i]);
            }
        }
    }
    cout << v - dp[n][v];
    return 0;
}